package com.gdc.microservicecloud.controller;

import com.gdc.microservicecloud.model.Dept;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.client.RestTemplate;

import java.util.List;

@RestController
@RequestMapping("/consumer/dept")
public class DeptController_Consumer {

    /**
     * 修改 服务提供者 请求地址为 服务提供者的应用名称
     */
    public static final String DEPT_PROVIDER_URL_PREFIX = "http://microservicecloud-dept";
    //public static final String DEPT_PROVIDER_URL_PREFIX = "http://localhost:8001";

    @Autowired
    private RestTemplate restTemplate;

    /**
     * 添加部门信息
     *
     * @param dept 部门信息
     * @return 结果
     */
    @PostMapping("/add")
    public boolean add(@RequestBody Dept dept) {
        return restTemplate.postForObject(DEPT_PROVIDER_URL_PREFIX + "/dept/add", dept, Boolean.class);
    }

    /**
     * 通过ID 获取部门信息
     *
     * @param id ID
     * @return 部门信息
     */
    @GetMapping("/get/{id}")
    public Dept get(@PathVariable("id") Long id) {
        return restTemplate.getForObject(DEPT_PROVIDER_URL_PREFIX + "/dept/get/" + id, Dept.class);
    }

    /**
     * 获取部门信息列表
     *
     * @return 部门信息列表
     */
    @GetMapping("/list")
    public List<Dept> list() {
        return restTemplate.getForObject(DEPT_PROVIDER_URL_PREFIX + "/dept/list", List.class);
    }

    /**
     * 获取服务发现 部门信息
     * @return          服务发信信息明细
     */
    @GetMapping("/discovery")
    public Object discovery(){
        return restTemplate.getForObject(DEPT_PROVIDER_URL_PREFIX + "dept/discovery", Object.class);
    }
}
